package core

import (
	"suitbim.com/media/config"
)

// 定义核心包下会用到的共享变量
var (
	// 全局配置对象引用
	G = config.GetGlobal()
)

// 定义核心包下会用到的常量
const (
	// 信号`开启推流`
	SIG_OPEN = "open"
	// 信号`关闭推流`
	SIG_CLOS = "close"
	// 信号`当前激活通道`
	SIG_ACTS = "actives"
	// SIG_CAPTURE_IMG 流截图
	SIG_CAPTURE = "capture"
)

// Message 用于解构从Dispatcher发来的消息
type Message struct {
	Sign    string   `json:"signal"`
	Chan    string   `json:"channel"`
	Path    string   `json:"path"`
	Content string   `json:"content"`
	Viewers []string `json:"viewers"`
}

// 用于反序列化channel.json配置文件
type ChannelConfig struct {
	ChannelCode string `json:"id"`
	MediaPath   string `json:"path"`
	ChNo        string `json:"chNo"`
	Username    string `json:"username"`
	Password    string `json:"password"`
	Address     string `json:"address"`
}

// 用于反序列化channel.json配置文件
type channelFile struct {
	Code     string          `json:"code"`
	Channels []ChannelConfig `json:"channels"`
}

// channel和tcp推流客户端之间的一对一绑定
// type channelPair struct {
// 	channel ChannelConfig
// 	client  *PushClient
// }

// 仿JSON
type JSON map[string]interface{}
